﻿using RockBus.DataContracts;
using RockBus.DataContracts.ConfigurationService;
using RockBus.ConfigurationRepository.Interfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RockBus.Configuration
{
    public class ConfigurationRepository // : IConfigurationRepository
    {
        public void AddOrUpdateSubscriberConfiguration(SubscriberConfiguration request)
        {
            throw new NotImplementedException();
        }

        public void RemoveSubscribers(RemoveSubscribersRequest request)
        {
            throw new NotImplementedException();
        }

        public void RemoveSubscriptions(RemoveSubscriptionsRequest request)
        {
            throw new NotImplementedException();
        }

        public void AddOrUpdatePublisherConfiguration(PublisherConfiguration request)
        {
            throw new NotImplementedException();
        }

        public void RemovePublishers(RemovePublishersRequest request)
        {
            throw new NotImplementedException();
        }

        public void RemoveReceivePorts(RemoveReceivePortsRequest request)
        {
            throw new NotImplementedException();
        }

        public void RemoveAllSubscribers(RemoveAllSubscribersRequest request)
        {
            throw new NotImplementedException();
        }

        public void RemoveAllPublishers(RemoveAllPublishersRequest request)
        {
            throw new NotImplementedException();
        }

        public SubscriberConfiguration GetSubscriberConfiguration()
        {
            return ServiceBusConfigurationSection.Instance.Subscribers.CreateSubscriberConfiguration();
        }

        public PublisherConfiguration GetPublisherConfiguration()
        {
            return ServiceBusConfigurationSection.Instance.Publishers.CreatePublisherConfiguration();
        }

        public SubscriberInfo GetSubscriber(GetSubscriberRequest request)
        {
            return ServiceBusConfigurationSection.Instance.Subscribers.CreateSubscriberInfo(request.SubscriberId);
        }

        public DataContracts.InternalConfiguration GetInternalConfiguration()
        {
            return ServiceBusConfigurationSection.Instance.CreateInternalConfiguration();
        }

        public void SetInternalConfiguration(DataContracts.InternalConfiguration configuration)
        {
            throw new NotImplementedException();
        }

        public void ClearAllClients()
        {
            throw new NotImplementedException();
        }
    }
}
